package com.haoyun.mirage.user.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.haoyun.mirage.user.model.dto.MenuDTO;
import com.haoyun.mirage.user.model.entity.SysMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 菜单权限表 Mapper 接口
 * </p>
 *
 * @author twg
 * @since 2018-05-30
 */
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 通过角色名查询菜单
     *
     * @param roleCode 角色编号
     * @return 菜单列表
     */
    List<MenuDTO> findMenuByRoleCode(@Param("roleCode") String roleCode);

    /**
     * 通过角色id，查询菜单 权限
     *
     * @param roleId
     * @return
     */
    List<MenuDTO> findMenuByRoleId(@Param("roleId") Long roleId);

    /**
     * 通过多个角色名查询菜单
     *
     * @param roleCodes 角色编号
     * @return
     */
    List<MenuDTO> findMenuByRoleCodes(@Param("roleCodes") String... roleCodes);

    /**
     * 通过菜单ID、角色名，删除角色菜单关系
     *
     * @param menuId    菜单ID
     * @param roleCodes 角色编号
     */
    void deleteRoleMenuByMenuIdAndRoleCodes(@Param("menuId") Long menuId, @Param("roleCodes") String... roleCodes);

}
